'''
给你一个二叉树的根节点 root ， 检查它是否轴对称
'''
'''
    递归结束条件：

    都为空指针则返回 true
    只有一个为空则返回 false

递归过程：

判断两个指针当前节点值是否相等
判断 A 的右子树与 B 的左子树是否对称
判断 A 的左子树与 B 的右子树是否对称

'''

class TreeNode:
    def __init__(self,val,left,right) -> None:
        self.val = val
        self.left = left
        self.right = right

class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        return self.isMirror(root,root)
    
    def isMirror(self,p,q):
        if p == None and q == None:
            return True
        if p == None or q == None:
            return False
        return p.val == q.val and self.isMirror(p.right,q.left) and self.isMirror(p.left,q.right)
    